import axios from "axios";
import { ElNotification } from 'element-plus'
import { useUserStore } from "@/stores/user";
let request = axios.create({
  baseURL: "/api",
  timeout: 5000,
  headers: {
    "Content-Type": "application/json"
  },
});


// 请求拦截器
request.interceptors.request.use(
  (config) => {
    // 可以在这里添加请求头等信息
    if (useUserStore().userInfo) {
      config.headers.token = useUserStore().userInfo.token
    }
    return config;
  },
  (error) => {
    // 请求错误处理
    console.log("request error:", error);
    ElNotification({
      type: "error",
      message: error.message,
      duration: 2000
    });
    Promise.reject(error);
  }
);

// 响应拦截器
request.interceptors.response.use(
  (response) => {
    // 可以在这里对响应数据进行处理
    // 例如：对响应码进行判断等
    return response.data;
  },
  (error) => {
    // 响应错误处理
    console.log("response error:", error);
    if (error.message.indexOf('401') !== -1) {
      alert('登陆过期！请重新登录')
      useUserStore().clearInfo()
    } else {
      ElNotification({
        type: "error",
        message: error.message,
        duration: 2000
      });
    }


    return Promise.reject(error);
  }
);

export default request;
